package com.yonyougov.devops.cruxcisupport.version;

import com.yonyougov.devops.cruxcisupport.version.vo.VersionNameVo;
import com.yonyougov.devops.cruxcisupport.version.vo.VersionPageVo;
import com.yonyougov.devops.fwc.core.service.BaseService;

import java.math.BigInteger;
import java.util.List;

/**
 * t_version服务
 */
public interface VersionService extends BaseService<VersionEntity, BigInteger> {
    //<!--用户自定义代码开始-->

    /**
     * 查询版本
     * 条件: 根据应用id
     *
     * @param versionEntity [com.yonyougov.devops.cruxcisupport.version.VersionEntity]
     * @return [java.util.List]
     */
    List<VersionNameVo> findVersionByAppId(VersionEntity versionEntity);

    /**
     * 级联删除
     * 删除版本以及版本描述
     *
     * @param versionEntity
     */
    void deleteCascadeByPrimaryKey(VersionEntity versionEntity);

    /**
     * 版本是否存在
     *
     * @param versionId 版本主键
     * @return boolean
     */
    boolean exist(BigInteger versionId);

    /**
     * 查询版本
     * 条件: 应用id
     *
     * @param versionEntity [com.yonyougov.devops.cruxcisupport.version.VersionEntity]
     * @return com.yonyougov.devops.cruxcisupport.version.dto.QueryVersionResponseDto
     */
    VersionPageVo findPageByAppId(VersionEntity versionEntity);

    /**
     * 查询版本
     * 条件: 根据应用id以及状态查询
     *
     * @param versionEntity [com.yonyougov.devops.cruxcisupport.version.VersionEntity]
     * @return [java.util.List]
     */
    List<VersionNameVo> findVersionByAppIdAndStatus(VersionEntity versionEntity);
    //<!--用户自定义代码结束-->

    String findUrlByAppAndVersion(VersionEntity appversion);
}
